package org.quincy.rock.core.dao.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.quincy.rock.core.dao.sql.JoinType;

/**
 * <b>JoinTable。</b>
 * <p><b>详细说明：</b></p>
 * <!-- 在此添加详细说明 -->
 * 无。
 * 
 * @version 1.0
 * @author wks
 * @since 1.0
 */
@Documented
@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface JoinTable {
	/**
	 * 表名
	 */
	String name();

	/**
	 * 别名
	 */
	String alias();

	/**
	 * Join连接类型
	 */
	JoinType joinType() default JoinType.LEFT_JOIN;

	/**
	 * 连接条件表达式
	 */
	String onExpr();

	/**
	 * 额外的列
	 */
	String[] extraColumns() default {};

	/**
	 * 额外的表达式列
	 */
	String[] extraExprColumns() default {};
}
